home *** CD-ROM | disk | FTP | other *** search
/ Inside Multimedia 1994 April / Inside Multimedia CD-ROM (April 1994).iso / prg / gs / gssource.exe / GS.MAK < prev    next >
Encoding:
Text File  |  1992-08-24  |  23.9 KB  |  669 lines

  1. #    Copyright (C) 1989, 1992 Aladdin Enterprises.  All rights reserved.
  2. #    Distributed by Free Software Foundation, Inc.
  3. #
  4. # This file is part of Ghostscript.
  5. #
  6. # Ghostscript is distributed in the hope that it will be useful, but
  7. # WITHOUT ANY WARRANTY.  No author or distributor accepts responsibility
  8. # to anyone for the consequences of using it or for whether it serves any
  9. # particular purpose or works at all, unless he says so in writing.  Refer
  10. # to the Ghostscript General Public License for full details.
  11. #
  12. # Everyone is granted permission to copy, modify and redistribute
  13. # Ghostscript, but only under the conditions described in the Ghostscript
  14. # General Public License.  A copy of this license is supposed to have been
  15. # given to you along with Ghostscript so you can know your rights and
  16. # responsibilities.  It should be in a file named COPYING.  Among other
  17. # things, the copyright notice and this notice must be preserved on all
  18. # copies.
  19.  
  20. # Generic makefile for Ghostscript.
  21. # The platform-specific makefiles `include' this file.
  22. # They define the following symbols:
  23. #    GS_INIT - the name of the initialization file for Ghostscript,
  24. #        normally gs_init.ps.
  25. #    GS_LIB_DEFAULT - the default directory/ies for searching for the
  26. #        initialization and font files at run time.
  27. #    DEVICE_DEVS - the devices to include in the executable.
  28. #        See devs.mak for details.
  29. #    DEVICE_DEVS2...DEVICE_DEVS5 - additional devices, if the definition of
  30. #        DEVICE_DEVS doesn't fit on one line.
  31. #        See devs.mak for details.
  32. #    FEATURE_DEVS - the optional features to include in the
  33. #        executable.  Current features are:
  34. #            dps - support for Display PostScript extensions.
  35. #            *** PARTIALLY IMPLEMENTED, SEE language.doc. ***
  36. #            level2 - support for PostScript Level 2 extensions.
  37. #            *** PARTIALLY IMPLEMENTED, SEE language.doc. ***
  38. #            compfont - support for composite (type 0) fonts.
  39. #            *** NOT IMPLEMENTED YET. ***
  40. #            filter - support for Level 2 filters (other than eexec,
  41. #            ASCIIHexEncode/Decode, NullEncode, PFBDecode,
  42. #            and SubFileDecode, which are always included).
  43. #            ccfonts - precompile fonts into C, and link them
  44. #            with the executable.  In the standard makefiles,
  45. #            this is only implemented for a very few fonts:
  46. #            see fonts.doc for details.
  47. # It is very unlikely that anyone would want to edit the remaining
  48. #   symbols, but we describe them here for completeness:
  49. #    PLATFORM - a "device" name for the platform, so that platforms can
  50. #        add various kinds of resources like devices and features.
  51. #    QQ - a " preceded by whatever escape characters are needed to
  52. #        persuade the shell to pass a " to a program (" on MS-DOS,
  53. #        \" on Unix).
  54. #    XE - the extension for executable files (e.g., null or .exe).
  55. #    OBJ - the extension for relocatable object files (e.g., o or obj).
  56. #    CCC - the C invocation for normal compilation.
  57. #    CCD - the C invocation for files that store into frame buffers or
  58. #        device registers.  Needed because some optimizing compilers
  59. #        will eliminate necessary stores.
  60. #    CC0 - a C invocation with the fewest possible flags.  Needed because
  61. #        MS-DOS limits the length of command lines to 128 characters.
  62. #    CCINT - the C invocation for compiling the main interpreter module,
  63. #        normally the same as CCC: this is needed because the
  64. #        Borland compiler generates *worse* code for this module
  65. #        (but only this module) when optimization (-O) is turned on.
  66. #    AK - if source files must be converted from ANSI to K&R syntax,
  67. #        this is ansi2knr$(XE); if not, it is null.
  68. #        If a particular platform requires other utility programs
  69. #        to be built, AK must include them too.
  70. #    UNIQ - null on systems that provide the uniq utility,
  71. #        uniq$(XE) on systems where we have to provide our own.
  72. #    SHP - the prefix for invoking a shell script in the current directory
  73. #        (null for MS-DOS, $(SH) ./ for Unix).
  74. #    EXPP, EXP - the prefix for invoking an executable program in the
  75. #        current directory (null for MS-DOS, ./ for Unix).
  76. #    SH - the shell for scripts (null on MS-DOS, sh on Unix).
  77. # The platform-specific makefiles must also include rules for creating
  78. #   ansi2knr$(XE) and genarch$(XE) from the corresponding .c files,
  79. #   and for making arch.h by executing genarch$(XE).  (This
  80. #   shouldn't really be necessary, but Turbo C and Unix C treat the -o
  81. #   switch slightly differently (Turbo C requires no following space,
  82. #   Unix C requires a following space), and I haven't found a way to capture
  83. #   the difference in a macro; also, Unix requires ./ because . may not be
  84. #   in the search path, whereas MS-DOS always looks in the current
  85. #   directory first.)
  86.  
  87. all default: gs$(XE)
  88.  
  89. mostlyclean realclean distclean clean:
  90.     rm -f *.$(OBJ) *.a core gmon.out
  91.     rm -f *.dev *.d_* arch.h gconfig.h obj*.tr lib*.tr
  92.     rm -f t _temp_* _temp_*.* *.map *.sym
  93.     rm -f ansi2knr$(XE) echogs$(XE) genarch$(XE) uniq$(XE)
  94.     rm -f gs$(XE) $(BEGINFILES)
  95.  
  96. # A rule to do a quick and dirty compilation attempt when first installing
  97. # Ghostscript.  Many of the compilations will fail: follow this with 'make'.
  98.  
  99. begin:
  100.     rm -f arch.h genarch$(XE) $(BEGINFILES)
  101.     make arch.h
  102.     - $(CCC) *.c
  103.     rm -f gconfig.$(OBJ) gdev*.$(OBJ) gp_*.$(OBJ) gsmisc.$(OBJ)
  104.     rm -f iccfont.$(OBJ) iinit.$(OBJ) interp.$(OBJ)
  105.  
  106. # Auxiliary programs
  107.  
  108. arch.h: genarch$(XE)
  109.     $(EXPP) $(EXP)genarch arch.h
  110.  
  111. # -------------------------------- Library -------------------------------- #
  112.  
  113. # Define the inter-dependencies of the .h files.
  114. # Since not all versions of `make' defer expansion of macros,
  115. # we must list these in bottom-to-top order.
  116.  
  117. # Generic files
  118.  
  119. arch_h=arch.h
  120. std_h=std.h $(arch_h)
  121. gdebug_h=gdebug.h
  122. gs_h=gs.h $(std_h)
  123. gx_h=gx.h $(gs_h) $(gdebug_h)
  124.  
  125. # Platform interfaces
  126.  
  127. gp_h=gp.h
  128. gpcheck_h=gpcheck.h
  129.  
  130. # C library interfaces
  131.  
  132. # Because of variations in the "standard" header files between systems,
  133. # we define local include files named *_.h to substitute for <*.h>.
  134.  
  135. vmsmath_h=vmsmath.h
  136.  
  137. dos__h=dos_.h
  138. malloc__h=malloc_.h
  139. math__h=math_.h $(vmsmath_h)
  140. memory__h=memory_.h
  141. stat__h=stat_.h
  142. string__h=string_.h
  143. time__h=time_.h
  144.  
  145. # Miscellaneous
  146.  
  147. gserrors_h=gserrors.h
  148.  
  149. GX=$(AK) $(gx_h)
  150. GXERR=$(GX) $(gserrors_h)
  151.  
  152. ###### Low-level facilities and utilities
  153.  
  154. ### Include files
  155.  
  156. gschar_h=gschar.h
  157. gscie_h=gscie.h
  158. gscolor_h=gscolor.h
  159. gscolor2_h=gscolor2.h
  160. gscoord_h=gscoord.h
  161. gscrypt1_h=gscrypt1.h
  162. gscspace_h=gscspace.h
  163. gsfont_h=gsfont.h
  164. gsmatrix_h=gsmatrix.h
  165. gspaint_h=gspaint.h
  166. gspath_h=gspath.h
  167. gsprops_h=gsprops.h
  168. gsstate_h=gsstate.h $(gscolor_h)
  169. gstype1_h=gstype1.h
  170. gsutil_h=gsutil.h
  171.  
  172. gxarith_h=gxarith.h
  173. gxbitmap_h=gxbitmap.h
  174. gxcache_h=gxcache.h
  175. gxchar_h=gxchar.h $(gschar_h)
  176. gxclist_h=gxclist.h
  177. gxcpath_h=gxcpath.h
  178. gxdevice_h=gxdevice.h $(gsmatrix_h) $(gxbitmap_h)
  179. gxdevmem_h=gxdevmem.h
  180. gxfdir_h=gxfdir.h
  181. gxfixed_h=gxfixed.h
  182. gxfont_h=gxfont.h $(gsfont_h)
  183. gximage_h=gximage.h
  184. gxlum_h=gxlum.h
  185. gxmatrix_h=gxmatrix.h $(gsmatrix_h)
  186. gxop1_h=gxop1.h
  187. gxpath_h=gxpath.h
  188. gxtype1_h=gxtype1.h $(gscrypt1_h) $(gstype1_h)
  189.  
  190. gzcolor_h=gzcolor.h $(gscolor_h)
  191. gzdevice_h=gzdevice.h $(gxdevice_h)
  192. gzht_h=gzht.h
  193. gzline_h=gzline.h
  194. gzpath_h=gzpath.h $(gxpath_h)
  195. gzstate_h=gzstate.h $(gsstate_h)
  196.  
  197. ### Executable code
  198.  
  199. gsutil.$(OBJ): gsutil.c \
  200.   $(std_h) $(gsprops_h) $(gsutil_h)
  201.  
  202. gxcache.$(OBJ): gxcache.c $(GXERR) $(gpcheck_h) \
  203.   $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzdevice_h) $(gzcolor_h) \
  204.   $(gxcpath_h) $(gxdevmem_h) $(gxfont_h) $(gxfdir_h) $(gxchar_h) \
  205.   $(gxcache_h) $(gzstate_h) $(gzpath_h)
  206.  
  207. gxclist.$(OBJ): gxclist.c $(GXERR) \
  208.   $(gsmatrix_h) $(gxbitmap_h) $(gxclist_h) $(gxdevice_h) $(gxdevmem_h)
  209.  
  210. gxcolor.$(OBJ): gxcolor.c $(GXERR) \
  211.   $(gscspace_h) $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gxlum_h) \
  212.   $(gzcolor_h) $(gzht_h) $(gzstate_h)
  213.  
  214. gxcpath.$(OBJ): gxcpath.c $(GXERR) \
  215.   $(gxdevice_h) $(gxfixed_h) $(gzcolor_h) $(gzpath_h) $(gxcpath_h)
  216.  
  217. gxdither.$(OBJ): gxdither.c $(GX) \
  218.   $(gxfixed_h) $(gxlum_h) $(gxmatrix_h) $(gzstate_h) $(gzdevice_h) $(gzcolor_h) $(gzht_h)
  219.  
  220. gxdraw.$(OBJ): gxdraw.c $(GX) $(gpcheck_h) \
  221.   $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzcolor_h) $(gzdevice_h) $(gzstate_h)
  222.  
  223. gxfill.$(OBJ): gxfill.c $(GXERR) \
  224.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzcolor_h) $(gzpath_h) $(gzstate_h) $(gxcpath_h)
  225.  
  226. gxhint1.$(OBJ): gxhint1.c $(GXERR) \
  227.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxdevmem_h) $(gxchar_h) $(gxfont_h) $(gxtype1_h) \
  228.   $(gzdevice_h) $(gzstate_h)
  229.  
  230. gxht.$(OBJ): gxht.c $(GXERR) \
  231.   $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h)
  232.  
  233. gxpath.$(OBJ): gxpath.c $(GXERR) \
  234.   $(gxfixed_h) $(gzpath_h)
  235.  
  236. gxpath2.$(OBJ): gxpath2.c $(GXERR) \
  237.   $(gxfixed_h) $(gxarith_h) $(gzpath_h)
  238.  
  239. gxpcopy.$(OBJ): gxpcopy.c $(GXERR) \
  240.   $(gxfixed_h) $(gxarith_h) $(gzpath_h)
  241.  
  242. gxstroke.$(OBJ): gxstroke.c $(GXERR) $(gpcheck_h) \
  243.   $(gscoord_h) $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) \
  244.   $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzline_h) $(gzpath_h)
  245.  
  246. ###### High-level facilities
  247.  
  248. gschar.$(OBJ): gschar.c $(GXERR) \
  249.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gxcache_h) $(gstype1_h) $(gspath_h) $(gzpath_h) $(gzcolor_h) $(gzstate_h)
  250.  
  251. gscolor.$(OBJ): gscolor.c $(GXERR) \
  252.   $(gscspace_h) \
  253.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzstate_h) $(gzcolor_h) $(gzht_h)
  254.  
  255. gscoord.$(OBJ): gscoord.c $(GXERR) \
  256.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gzstate_h) $(gscoord_h)
  257.  
  258. gsdevice.$(OBJ): gsdevice.c $(GXERR) \
  259.   $(gxarith_h) $(gsprops_h) $(gsutil_h) $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gxdevmem_h) $(gzstate_h) $(gzdevice_h)
  260.  
  261. gsfile.$(OBJ): gsfile.c $(GXERR) \
  262.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
  263.  
  264. gsfont.$(OBJ): gsfont.c $(GXERR) \
  265.   $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gxfont_h) $(gxfdir_h) \
  266.   $(gzstate_h)
  267.  
  268. gsimage.$(OBJ): gsimage.c $(GXERR) $(gpcheck_h) \
  269.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gspaint_h) \
  270.   $(gzcolor_h) $(gzdevice_h) $(gzpath_h) $(gzstate_h) \
  271.   $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  272.  
  273. gsimage2.$(OBJ): gsimage2.c $(GXERR) $(gpcheck_h) \
  274.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gspaint_h) \
  275.   $(gzcolor_h) $(gzdevice_h) $(gzpath_h) $(gzstate_h) \
  276.   $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  277.  
  278. gsimpath.$(OBJ): gsimpath.c $(GXERR) \
  279.   $(gsmatrix_h) $(gsstate_h) $(gspath_h)
  280.  
  281. gsline.$(OBJ): gsline.c $(GXERR) \
  282.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzline_h)
  283.  
  284. gsmatrix.$(OBJ): gsmatrix.c $(GXERR) \
  285.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h)
  286.  
  287. gsmisc.$(OBJ): gsmisc.c $(GX) $(MAKEFILE)
  288.     $(CCC) -DUSE_ASM=0$(USE_ASM) gsmisc.c
  289.  
  290. gspaint.$(OBJ): gspaint.c $(GXERR) $(gpcheck_h) \
  291.   $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzpath_h) $(gzstate_h) $(gzdevice_h) $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  292.  
  293. gspath.$(OBJ): gspath.c $(GXERR) \
  294.   $(gxfixed_h) $(gxmatrix_h) $(gxpath_h) $(gzstate_h)
  295.  
  296. gspath2.$(OBJ): gspath2.c $(GXERR) \
  297.   $(gspath_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzpath_h) $(gzdevice_h)
  298.  
  299. gsstate.$(OBJ): gsstate.c $(GXERR) \
  300.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h) $(gzline_h) $(gzpath_h)
  301.  
  302. gstdev.$(OBJ): gstdev.c $(GXERR) \
  303.   $(gxbitmap_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h)
  304.  
  305. gstype1.$(OBJ): gstype1.c $(GXERR) \
  306.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h) $(gxdevmem_h) $(gxop1_h) $(gxtype1_h) \
  307.   $(gzstate_h) $(gzdevice_h) $(gzpath_h)
  308.  
  309. ###### The internal devices
  310.  
  311. gdevmem_h=gdevmem.h
  312.  
  313. gdevmem1.$(OBJ): gdevmem1.c $(AK) \
  314.   $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  315.  
  316. gdevmem2.$(OBJ): gdevmem2.c $(AK) \
  317.   $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  318.  
  319. gdevmem3.$(OBJ): gdevmem3.c $(AK) \
  320.   $(gs_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  321.  
  322. ###### Files dependent on the installed devices, features, and platform.
  323. # Generating gconfig.h also generates obj*.tr and lib.tr.
  324.  
  325. gconfig.h obj.tr objw.tr lib.tr: devs.mak $(MAKEFILE) echogs$(XE) $(UNIQ) \
  326.   $(DEVICE_DEVS) $(DEVICE_DEVS2) $(DEVICE_DEVS3) $(DEVICE_DEVS4) $(DEVICE_DEVS5)\
  327.   $(FEATURE_DEVS) $(PLATFORM).dev
  328.     $(SHP)gsconfig $(DEVICE_DEVS) +
  329.     $(SHP)gsconfig + $(DEVICE_DEVS2) +
  330.     $(SHP)gsconfig + $(DEVICE_DEVS3) +
  331.     $(SHP)gsconfig + $(DEVICE_DEVS4) +
  332.     $(SHP)gsconfig + $(DEVICE_DEVS5) +
  333.     $(SHP)gsconfig + $(FEATURE_DEVS) $(PLATFORM).dev
  334.  
  335. gconfig.$(OBJ): gconfig.c $(AK) gconfig.h $(MAKEFILE)
  336.     $(CC0) -DGS_LIB_DEFAULT=$(QQ)$(GS_LIB_DEFAULT)$(QQ) -DGS_INIT=$(QQ)$(GS_INIT)$(QQ) gconfig.c
  337.  
  338. ###### On Unix, we pre-link all of the library except the back end.
  339. ###### On MS-DOS, we have to do the whole thing at once.
  340.  
  341. LIB=gschar.$(OBJ) gscolor.$(OBJ) gscoord.$(OBJ) \
  342.  gsdevice.$(OBJ) gsfile.$(OBJ) gsfont.$(OBJ) gsimage.$(OBJ) gsimage2.$(OBJ) \
  343.  gsimpath.$(OBJ) gsline.$(OBJ) gsmatrix.$(OBJ) gsmisc.$(OBJ) \
  344.  gspaint.$(OBJ) gspath.$(OBJ) gspath2.$(OBJ) \
  345.  gsstate.$(OBJ) gstdev.$(OBJ) gstype1.$(OBJ) gsutil.$(OBJ) \
  346.  gxcache.$(OBJ) gxclist.$(OBJ) gxcolor.$(OBJ) gxcpath.$(OBJ) \
  347.  gxdither.$(OBJ) gxdraw.$(OBJ) gxfill.$(OBJ) gxhint1.$(OBJ) gxht.$(OBJ) \
  348.  gxpath.$(OBJ) gxpath2.$(OBJ) gxpcopy.$(OBJ) gxstroke.$(OBJ) \
  349.  gdevmem1.$(OBJ) gdevmem2.$(OBJ) gdevmem3.$(OBJ) gconfig.$(OBJ)
  350.  
  351. # ------------------------------ Interpreter ------------------------------ #
  352.  
  353. ###### Include files
  354.  
  355. alloc_h=alloc.h
  356. astate_h=astate.h
  357. ccfont_h=ccfont.h
  358. dict_h=dict.h
  359. dparam_h=dparam.h
  360. dstack_h=dstack.h
  361. errors_h=errors.h
  362. estack_h=estack.h
  363. files_h=files.h
  364. font_h=font.h
  365. ghost_h=ghost.h $(gx_h) $(iref_h)
  366. iref_h=iref.h
  367. iutil_h=iutil.h
  368. main_h=main.h
  369. name_h=name.h
  370. opdef_h=opdef.h
  371. ostack_h=ostack.h
  372. overlay_h=overlay.h
  373. packed_h=packed.h
  374. save_h=save.h
  375. scanchar_h=scanchar.h
  376. scf_h=scf.h
  377. state_h=state.h
  378. store_h=store.h
  379. stream_h=stream.h
  380. # Nested include files
  381. bfont_h=bfont.h $(font_h)
  382. oper_h=oper.h $(gsutil_h) $(iutil_h) $(opdef_h) $(ostack_h)
  383. # Include files for optional features
  384. bnum_h=bnum.h
  385. bseq_h=bseq.h
  386. btoken_h=btoken.h
  387.  
  388. comp1_h=comp1.h $(ghost_h) $(oper_h) $(gserrors_h) $(gxfixed_h) $(gxop1_h)
  389.  
  390. gdevprn_h=gdevprn.h $(memory__h) $(string__h) $(gx_h) \
  391.   $(gserrors_h) $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h) $(gxclist_h)
  392.  
  393. ###### Utilities
  394.  
  395. GH=$(AK) $(ghost_h)
  396.  
  397. ialloc.$(OBJ): ialloc.c $(AK) $(gs_h) $(gdebug_h) $(alloc_h) $(astate_h)
  398.  
  399. iccfont.$(OBJ): iccfont.c $(GH) gconfig.h \
  400.  $(ghost_h) $(alloc_h) $(ccfont_h) $(dict_h) $(dstack_h) $(errors_h) $(iutil_h) $(name_h) $(oper_h) $(save_h) $(store_h)
  401.  
  402. idebug.$(OBJ): idebug.c $(GH) \
  403.  $(iutil_h) $(dict_h) $(name_h) $(ostack_h) $(opdef_h) $(packed_h) $(store_h)
  404.  
  405. idict.$(OBJ): idict.c $(GH) \
  406.   $(alloc_h) $(errors_h) $(name_h) $(packed_h) $(save_h) $(store_h) $(iutil_h) $(dict_h) $(dstack_h)
  407.  
  408. idparam.$(OBJ): idparam.c $(GH) \
  409.   $(gsmatrix_h) $(dict_h) $(dparam_h) $(errors_h) $(iutil_h)
  410.  
  411. iinit.$(OBJ): iinit.c $(GH) gconfig.h \
  412.   $(alloc_h) $(dict_h) $(dstack_h) $(errors_h) $(name_h) $(oper_h) $(store_h)
  413.  
  414. iname.$(OBJ): iname.c $(GH) $(alloc_h) $(errors_h) $(name_h) $(store_h)
  415.  
  416. isave.$(OBJ): isave.c $(GH) $(alloc_h) $(astate_h) $(name_h) $(packed_h) $(save_h) $(store_h)
  417.  
  418. iscan.$(OBJ): iscan.c $(GH) $(alloc_h) $(dict_h) $(dstack_h) $(errors_h) $(iutil_h) \
  419.  $(name_h) $(ostack_h) $(packed_h) $(store_h) $(stream_h) $(scanchar_h)
  420.  
  421. iutil.$(OBJ): iutil.c $(GH) \
  422.  $(errors_h) $(alloc_h) $(dict_h) $(iutil_h) $(name_h) $(ostack_h) $(opdef_h) $(packed_h) $(store_h) \
  423.  $(gsmatrix_h) $(gxdevice_h) $(gzcolor_h)
  424.  
  425. sfilter.$(OBJ): sfilter.c $(AK) $(std_h) $(scanchar_h) $(stream_h) \
  426.  $(gscrypt1_h)
  427.  
  428. stream.$(OBJ): stream.c $(AK) $(std_h) $(stream_h) $(scanchar_h)
  429.  
  430. ###### Operators
  431.  
  432. OP=$(GH) $(errors_h) $(oper_h)
  433.  
  434. ### Non-graphics operators
  435.  
  436. zarith.$(OBJ): zarith.c $(OP) $(store_h)
  437.  
  438. zarray.$(OBJ): zarray.c $(OP) $(alloc_h) $(packed_h) $(store_h)
  439.  
  440. zcontrol.$(OBJ): zcontrol.c $(OP) $(estack_h) $(iutil_h) $(store_h)
  441.  
  442. zdict.$(OBJ): zdict.c $(OP) $(dict_h) $(dstack_h) $(name_h) $(store_h)
  443.  
  444. zfile.$(OBJ): zfile.c $(OP) $(gp_h) \
  445.   $(alloc_h) $(estack_h) $(files_h) $(iutil_h) $(save_h) $(stream_h) $(store_h)
  446.  
  447. zfileio.$(OBJ): zfileio.c $(OP) $(gp_h) \
  448.   $(estack_h) $(files_h) $(store_h) $(stream_h) \
  449.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
  450.  
  451. zfilter.$(OBJ): zfilter.c $(OP) $(alloc_h) $(stream_h)
  452.  
  453. zgeneric.$(OBJ): zgeneric.c $(OP) $(dict_h) $(estack_h) $(name_h) $(packed_h) $(store_h)
  454.  
  455. zmath.$(OBJ): zmath.c $(OP) $(store_h)
  456.  
  457. zmisc.$(OBJ): zmisc.c $(OP) $(gp_h) \
  458.   $(alloc_h) $(dict_h) $(dstack_h) $(name_h) $(packed_h) $(store_h) \
  459.   $(gscrypt1_h)
  460.  
  461. zpacked.$(OBJ): zpacked.c $(OP) \
  462.   $(alloc_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(store_h)
  463.  
  464. zprops.$(OBJ): zprops.c $(OP) \
  465.   $(alloc_h) $(dict_h) $(name_h) $(store_h) \
  466.   $(gsprops_h) $(gsmatrix_h) $(gxdevice_h)
  467.  
  468. zrelbit.$(OBJ): zrelbit.c $(OP) $(store_h) $(dict_h)
  469.  
  470. zstack.$(OBJ): zstack.c $(OP) $(store_h)
  471.  
  472. zstring.$(OBJ): zstring.c $(OP) $(alloc_h) $(iutil_h) $(name_h) $(store_h) $(stream_h)
  473.  
  474. ztype.$(OBJ): ztype.c $(OP) $(dict_h) $(iutil_h) $(name_h) $(stream_h) $(store_h)
  475.  
  476. zvmem.$(OBJ): zvmem.c $(OP) $(alloc_h) $(dict_h) $(dstack_h) $(estack_h) $(save_h) $(state_h) $(store_h) \
  477.   $(gsmatrix_h) $(gsstate_h)
  478.  
  479. ###### Graphics operators
  480.  
  481. zchar.$(OBJ): zchar.c $(OP) $(gxfixed_h) $(gxmatrix_h) \
  482.  $(gschar_h) $(gxtype1_h) $(gxdevice_h) $(gxfont_h) $(gzpath_h) $(gzstate_h) \
  483.  $(alloc_h) $(dict_h) $(dstack_h) $(font_h) $(estack_h) $(state_h) $(store_h)
  484.  
  485. zcolor.$(OBJ): zcolor.c $(OP) $(alloc_h) $(estack_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gxdevice_h) $(gzcolor_h) $(iutil_h) $(state_h) $(store_h)
  486.  
  487. zdevice.$(OBJ): zdevice.c $(OP) $(alloc_h) $(state_h) $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(store_h)
  488.  
  489. zfont.$(OBJ): zfont.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) $(gxfdir_h) \
  490.  $(alloc_h) $(bfont_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(state_h) $(store_h)
  491.  
  492. zfont1.$(OBJ): zfont1.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
  493.  $(bfont_h) $(dict_h) $(dparam_h) $(name_h) $(store_h)
  494.  
  495. zfont2.$(OBJ): zfont2.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
  496.  $(alloc_h) $(bfont_h) $(dict_h) $(dparam_h) $(name_h) $(packed_h) $(store_h)
  497.  
  498. zgstate.$(OBJ): zgstate.c $(OP) $(alloc_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
  499.  
  500. zht.$(OBJ): zht.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
  501.  
  502. zmatrix.$(OBJ): zmatrix.c $(OP) $(gsmatrix_h) $(state_h) $(gscoord_h) $(store_h)
  503.  
  504. zpaint.$(OBJ): zpaint.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gspaint_h) $(state_h) $(store_h) $(stream_h)
  505.  
  506. zpath.$(OBJ): zpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
  507.  
  508. zpath2.$(OBJ): zpath2.c $(OP) $(alloc_h) $(estack_h) $(gspath_h) $(state_h) $(store_h)
  509.  
  510. ###### Linking
  511.  
  512. INT=ialloc.$(OBJ) idebug.$(OBJ) idict.$(OBJ) idparam.$(OBJ) \
  513.  iinit.$(OBJ) iname.$(OBJ) \
  514.  interp.$(OBJ) isave.$(OBJ) iscan.$(OBJ) iutil.$(OBJ) \
  515.  sfilter.$(OBJ) stream.$(OBJ) \
  516.  zarith.$(OBJ) zarray.$(OBJ) zcontrol.$(OBJ) zdict.$(OBJ) \
  517.  zfile.$(OBJ) zfileio.$(OBJ) zfilter.$(OBJ) zgeneric.$(OBJ) \
  518.  zmath.$(OBJ) zmisc.$(OBJ) zpacked.$(OBJ) zprops.$(OBJ) zrelbit.$(OBJ) \
  519.  zstack.$(OBJ) zstring.$(OBJ) ztype.$(OBJ) zvmem.$(OBJ) \
  520.  zchar.$(OBJ) zcolor.$(OBJ) zfont.$(OBJ) zfont1.$(OBJ) zfont2.$(OBJ) \
  521.  zdevice.$(OBJ) zgstate.$(OBJ) zht.$(OBJ) zmatrix.$(OBJ) \
  522.  zpaint.$(OBJ) zpath.$(OBJ) zpath2.$(OBJ)
  523.  
  524. # -------------------------- Optional features ---------------------------- #
  525.  
  526. ### Additions common to Display PostScript and Level 2
  527.  
  528. dpsand2_=gsdps1.$(OBJ) ibnum.$(OBJ) ibscan.$(OBJ) \
  529.  zbseq.$(OBJ) zdps1.$(OBJ) zupath.$(OBJ)
  530. dpsand2.dev: $(dpsand2_)
  531.     $(SHP)gssetmod dpsand2 $(dpsand2_)
  532.     $(SHP)gsaddmod dpsand2 -oper zbseq zdps1 zupath
  533.     $(SHP)gsaddmod dpsand2 -ps gs_dps1
  534.  
  535. gsdps1.$(OBJ): gsdps1.c $(GXERR) $(gsmatrix_h) $(gspath_h)
  536.  
  537. ibnum.$(OBJ): ibnum.c $(GH) $(errors_h) $(stream_h) $(bnum_h) $(btoken_h)
  538.  
  539. ibscan.$(OBJ): ibscan.c $(GH) $(errors_h) \
  540.  $(alloc_h) $(dict_h) $(dstack_h) $(iutil_h) $(name_h) $(ostack_h) $(save_h) $(store_h) $(stream_h) $(bseq_h) $(btoken_h) $(bnum_h)
  541.  
  542. zbseq.$(OBJ): zbseq.c $(OP) $(save_h) $(store_h) $(stream_h) $(files_h) $(name_h) $(bnum_h) $(btoken_h) $(bseq_h)
  543.  
  544. zdps1.$(OBJ): zdps1.c $(OP) $(gsmatrix_h) $(gspath_h) $(gsstate_h) \
  545.  $(alloc_h) $(state_h) $(store_h) $(stream_h) $(bnum_h)
  546.  
  547. zupath.$(OBJ): zupath.c $(OP) \
  548.  $(dict_h) $(dstack_h) $(iutil_h) $(state_h) $(store_h) $(stream_h) $(bnum_h) \
  549.  $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstate_h) \
  550.  $(gxfixed_h) $(gxdevice_h) $(gxpath_h)
  551.  
  552. ### Display PostScript
  553. # We should include zcontext, but it isn't in good enough shape yet:
  554. #    $(SHP)gsaddmod dps -oper zcontext
  555.  
  556. dps_=
  557. dps.dev: dpsand2.dev $(dps_)
  558.     $(SHP)gssetmod dps $(dps_)
  559.     $(SHP)gsaddmod dps -include dpsand2
  560.  
  561. zcontext.$(OBJ): zcontext.c $(OP) \
  562.  $(alloc_h) $(dict_h) $(dstack_h) $(estack_h) $(state_h) $(store_h)
  563.  
  564. ### Level 2 additions
  565. # We should include gscie and zcie, but they aren't anywhere near ready.
  566.  
  567. level2_=gscolor2.$(OBJ) zcolor2.$(OBJ) zht2.$(OBJ) zimage2.$(OBJ)
  568. level2.dev: dpsand2.dev $(level2_)
  569.     $(SHP)gssetmod level2 $(level2_)
  570.     $(SHP)gsaddmod level2 -include dpsand2
  571.     $(SHP)gsaddmod level2 -oper zcolor2 zimage2
  572.     $(SHP)gsaddmod level2 -ps gs_lev2
  573.  
  574. gscie.$(OBJ): gscie.c $(std_h) \
  575.   $(gscspace_h) $(gscie_h)
  576.  
  577. gscolor2.$(OBJ): gscolor2.c $(GXERR) \
  578.   $(gscolor2_h) $(gscspace_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) \
  579.   $(gzcolor_h) $(gzstate_h)
  580.  
  581. zcie.$(OBJ): zcie.c $(OP) $(gscspace_h) $(gscie_h) \
  582.   $(dict_h) $(dparam_h) $(state_h)
  583.  
  584. zcolor2.$(OBJ): zcolor2.c $(OP) \
  585.   $(gscolor_h) $(gscolor2_h) $(gscspace_h) $(gsmatrix_h) \
  586.   $(dict_h) $(dparam_h) $(name_h) $(state_h) $(store_h)
  587.  
  588. zht2.$(OBJ): zht2.c $(OP) \
  589.   $(dict_h) $(dparam_h) $(name_h) $(state_h) $(store_h)
  590.  
  591. zimage2.$(OBJ): zimage2.c $(OP) \
  592.   $(gscolor_h) $(gscolor2_h) $(gscspace_h) $(gsmatrix_h) \
  593.   $(dict_h) $(dparam_h) $(state_h)
  594.  
  595. ### Composite font support
  596.  
  597. gschar0.$(OBJ): gschar0.c $(GXERR) \
  598.   $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
  599.  
  600. zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
  601.  $(alloc_h) $(bfont_h) $(dict_h) $(name_h) $(state_h) $(store_h)
  602.  
  603. compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
  604. compfont.dev: $(compfont_)
  605.     $(SHP)gssetmod compfont $(compfont_)
  606.     $(SHP)gsaddmod compfont -oper zfont0
  607.  
  608. ### Filters other than the ones in sfilter.c
  609.  
  610. scftab.$(OBJ): scftab.c $(AK) $(std_h) $(scf_h)
  611.  
  612. scfdtab.$(OBJ): scfdtab.c $(AK) $(std_h) $(scf_h)
  613.  
  614. scfd.$(OBJ): scfd.c $(AK) $(std_h) $(gdebug_h) $(scf_h) $(stream_h)
  615.  
  616. scfe.$(OBJ): scfe.c $(AK) $(std_h) $(gdebug_h) $(scf_h) $(stream_h)
  617.  
  618. sfilter2.$(OBJ): sfilter2.c $(AK) $(std_h) $(scanchar_h) $(stream_h)
  619.  
  620. slzwd.$(OBJ): slzwd.c $(AK) $(std_h) $(gdebug_h) $(stream_h)
  621.  
  622. slzwe.$(OBJ): slzwe.c $(AK) $(std_h) $(gdebug_h) $(stream_h)
  623.  
  624. zfilter2.$(OBJ): zfilter2.c $(OP) $(alloc_h) $(dict_h) $(dparam_h) $(stream_h)
  625.  
  626. # Because of size limits on the DOS command line,
  627. # we have to break this up into two parts.
  628. filter_1=zfilter2.$(OBJ) sfilter2.$(OBJ)
  629. filter_2=scfd.$(OBJ) scfe.$(OBJ) scfdtab.$(OBJ) scftab.$(OBJ) slzwd.$(OBJ) slzwe.$(OBJ)
  630. filter.dev: $(filter_1) $(filter_2)
  631.     $(SHP)gssetmod filter $(filter_1)
  632.     $(SHP)gsaddmod filter -obj $(filter_2)
  633.     $(SHP)gsaddmod filter -oper zfilter2
  634.  
  635. ### Precompiled fonts.  See fonts.doc for more information.
  636.  
  637. CCFONT=$(OP) $(ccfont_h)
  638.  
  639. ccfonts_=ugly.$(OBJ)
  640. ccfonts.dev: $(ccfonts_) iccfont.$(OBJ)
  641.     $(SHP)gssetmod ccfonts $(ccfonts_) iccfont.$(OBJ)
  642.     $(SHP)gsaddmod ccfonts -oper ccfonts
  643.     $(SHP)gsaddmod ccfonts -font Ugly
  644.  
  645. ugly.$(OBJ): ugly.c $(CCFONT)
  646.  
  647. ncrr.$(OBJ): ncrr.c $(CCFONT)
  648.  
  649. psyr.$(OBJ): psyr.c $(CCFONT)
  650.  
  651. ptmr.$(OBJ): ptmr.c $(CCFONT)
  652.  
  653. pzdr.$(OBJ): pzdr.c $(CCFONT)
  654.  
  655. # ----------------------------- Main program ------------------------------ #
  656.  
  657. # Interpreter main program
  658.  
  659. gs.$(OBJ): gs.c $(GH) $(gxdevice_h) $(gxdevmem_h) \
  660.   $(alloc_h) $(errors_h) $(estack_h) $(main_h) $(ostack_h) $(store_h) $(stream_h)
  661.  
  662. gsmain.$(OBJ): gsmain.c $(GH) \
  663.   $(gp_h) $(gsmatrix_h) $(gxdevice_h) $(gserrors_h) \
  664.   $(estack_h) $(main_h) $(ostack_h) $(store_h)
  665.  
  666. interp.$(OBJ): interp.c $(GH) \
  667.   $(errors_h) $(estack_h) $(name_h) $(dict_h) $(dstack_h) $(oper_h) $(ostack_h) $(packed_h) $(save_h) $(store_h) $(stream_h)
  668.     $(CCINT) interp.c
  669.